package org.dromara.community.controller;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.dromara.comm_lhz.entity.AsSpaceManageEntity;
import org.dromara.comm_lhz.mapper.AsSpaceManageHMapper;
import org.dromara.community.entity.AsAppointmentFilling;
import org.dromara.community.service.AsAppointmentFillingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


/**
 * 预约信息填报
 */
@RestController
@RequestMapping("/asAppointmentFilling")
@Tag(name = "预约信息填报")
public class AsAppointmentFillingController {


    @Autowired
    private AsSpaceManageHMapper asSpaceManageEntityMapper;

    private AsAppointmentFillingService asAppointmentFillingService;


    /**
     * 新增预约信息填报
     * 该接口使用POST请求方式，允许用户提交新的预约信息
     * 参数：@RequestBody接收客户端发送的JSON格式数据，并将其转换为AsAppointmentFilling对象
     */
    @Operation(summary = "新增预约信息填报")
    @PostMapping("/insertAsSponsor")
    public void insertAsSponsor(@RequestBody AsSpaceManageEntity AsSpaceManageEntity) {
        asSpaceManageEntityMapper.insert(AsSpaceManageEntity);
    }


    /**
     * 更新预约信息填报
     * 此接口用于根据提供的预约信息填报对象更新数据库中的对应记录
     * 使用者应具有赞助方或组织者的角色
     *
     * @param AsSpaceManageEntity 预约信息填报对象，包含需要更新的全部字段
     */
    @Operation(summary = "更新预约信息填报")
    @PostMapping("/updateAsSponsor")
    public void updateAsSponsor(@RequestBody AsSpaceManageEntity AsSpaceManageEntity) {
        asSpaceManageEntityMapper.updateById(AsSpaceManageEntity);
    }


    /**
     * 该接口用于删除指定的预约信息填报记录
     * 通过GET请求方式，提供一个预约信息填报的ID，来实现删除操作
     * 此接口利用了操作注解@Operation来提供接口的摘要信息
     *
     * @param id 预约信息填报的唯一标识，用于定位并删除特定的填报记录
     */
    @Operation(summary = "删除预约信息填报")
    @GetMapping("/deleteAsSponsor")
    public void deleteAsSponsor(@RequestParam("id") Long id) {
        asSpaceManageEntityMapper.deleteById(id);
    }


}
